//#include "vtk_include.h"
//
//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//#include <time.h>
//
//#define SIZE 70
//
//struct cell_t
//{
//	unsigned short age;
//	bool alive;
//}universe[2][SIZE+2][SIZE+2][SIZE+2];
//// universe[n][x][y][y]
//// n is the two 'universe's (I know that's an oxymoron)
//// there are two because one is 'read' from
//// and the other is 'written' to (see void step(n))
//// also the dimensions are SIZE+2 to create a buffer of dead
//// cells around the matrix to avoid array bounds checks
//
//class GameOfLifeTimerX : public vtkCommand {
//	public:
//		static GameOfLifeTimerX *New(){
//			GameOfLifeTimerX *cb = new GameOfLifeTimerX;
//			return cb;
//		}
//
//		void setTimerToWatch(int timerId){
//			timerToWatch = timerId;
//		}
//
//		int getTimerToWatch(){
//			return timerToWatch;
//		}
//
//		void setRender(vtkRenderWindowInteractor *iren)
//		{
//			renderer = iren;
//		}
//
//		vtkRenderWindowInteractor* getRenderer()
//		{
//			return renderer;
//		}
//
//		virtual void Execute(vtkObject *caller, unsigned long eventId,void *callData){
//			if (vtkCommand::TimerEvent == eventId){
//				int timerId = * static_cast<int *>(callData);
//				if(timerId != timerToWatch) return;
//				printf("timer iteration!");
//	//	// calculate grid
//	//	if(isStep0) step(0);
//	//	else step(1);
//
//	//	// build display
//
//	//	// render
//
//	//	// next step
//	//	isStep0 = !isStep0;
//
//			}
//		}
//		
//
//	// randomize the initial universe
//
//
//};
